1. Technical Field
The present invention relates generally to a method of alleviating the workload of storage devices in a computer system through mirroring. More specifically, the present invention is directed toward a method of automatically establishing and decommissioning mirrors of data storage volumes in response to current storage system workloads.
2. Description of Related Art
In the past, large computer systems were mainly tools for calculation. With the growth of the Internet, the role of large-scale computer systems has shifted from calculation to data storage. Modern large-scale computer systems are primarily used as servers, machines that provide services (like data storage and retrieval) to a network of smaller-scale client computer systems. As a result, today's servers must be capable of quickly handling a large volume of accesses to mass data storage devices, such as disk drives, to store or retrieve data.
The efficiency of a server in storing and retrieving data for clients is limited in large degree to the physical technology used for the server's data storage. Disk drives, for instance, use a moving magnetic head to write or read concentric circular tracks on a rotating magnetic disk. The speed at which a disk drive is able to process a read or write operation is limited by the drive's mechanical seek time and rotational latency. The seek time is the time it takes for the disk drive's head to move from one track to another, and the rotational latency is the time it takes for the rotating magnetic disk to rotate to the proper position for reading or writing the information.
When a computer system has many requests to store or retrieve data from a mass storage device, the requests may be delayed considerably in execution as one operation must be completed mechanically before another may be processed. One way of alleviating this inefficiency is to use a mirror.
A mirror is a duplicate on one or more physical storage devices of some or all of the contents of another physical storage device or devices. When a mirror is employed in a computer system, requests to access the mirrored data may be processed by either the original storage device storing the data or by the mirror. By distributing the requests over two or more sets of physical storage devices, the workload of any one physical storage device is diminished.
There are a few problems with mirroring that reduce its effectiveness as an efficiency enhancement technique, however. One is that it is not always clear to a system administrator or user of a computer system which volumes or portions of volumes should be mirrored for optimal efficiency. Another is that because certain items of data may be accessed more heavily at some times than others, the optimal mirroring scheme may change from time to time. Keeping up with changing usage requirements is inconvenient at best. What is needed is a mirroring scheme that allows for optimal mirroring of data under changing circumstances.